package com.mdd.common.enums;

import com.google.common.collect.Maps;

import java.util.Map;

/**
 * 客户端枚举类
 */
public enum DictDataCodeEnum {

    RAKE_MZD("rake_1", "木栈道"),
    RAKE_ZONE("rake_2","园区抽成");

    /**
     * 构造方法
     */
    private final String code;
    private final String name;
    DictDataCodeEnum(String code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 根据类型获取Code
     *
     * @author fzr
     * @param type 类型
     * @return String
     */
    public static String getCodeByType(String type){
        for(DictDataCodeEnum enumItem: DictDataCodeEnum.values()) {
            if (enumItem.toString().equals(type.toUpperCase())) {
                return enumItem.getCode();
            }
        }
        return null;
    }

    /**
     * 根据类型获取Msg
     *
     * @author fzr
     * @param type 类型
     * @return String
     */
    public static String getMsgByType(String type){
        for(DictDataCodeEnum enumItem: DictDataCodeEnum.values()) {
            if (enumItem.toString().equals(type)) {
                return enumItem.getMsg();
            }
        }
        return null;
    }

    /**
     * 根据编码获取Msg
     *
     * @author fzr
     * @param code 类型
     * @return String
     */
    public static String getMsgByCode(String code){
        for(DictDataCodeEnum enumItem: DictDataCodeEnum.values()) {
            if (enumItem.getCode().equals(code)) {
                return enumItem.getMsg();
            }
        }
        return null;
    }




    /**
     * 获取状态码
     *
     * @author fzr
     * @return Long
     */
    public String getCode() {
        return this.code;
    }

    /**
     * 获取提示
     *
     * @author fzr
     * @return String
     */
    public String getMsg() {
        return this.name;
    }

    public static Map<String, String> getMap() {
        Map<String, String> map = Maps.newHashMap();
        for (DictDataCodeEnum codeEnum : DictDataCodeEnum.values()) {
            map.put(codeEnum.code, codeEnum.name);
        }
        return map;
    }
}
